به بخش جدید آموزش سي شارپ خوش آمدید.
در این درس قصد داریم تا شما را با مفهوم تابع سازنده Constructor و destructor در C# و کاربرد آن ها آشنا کنیم.
تابع سازنده یا Constructor متد ویژه ای است که هر بار به محض ساخته شدن یک شی یا object از کلاس، اجرا می شود. درواقع از تابع سازنده برای مقداردهی اولیه متغیرها یا اجرای یک کد ثابت استفاده می شود. یک تابع سازنده هیچ گاه مقدار خروجی یا retu ندارد و به همین دلیل در تعریف آن، هیچ نوع متغیری جهت retu تعریف نمی شود. ساختار کلی تعریف تابع سازنده Constructor در کلاس های C# به صورت زیر است :
public ClassName()
به همین روش تابع سازنده کلاس Car را به صورت زیر نیز می توانید تعریف کنید :
public Car()
در مثال عملی این درس، کلاسی به نام Car داریم که دارای یک تابع سازنده بوده که یک پارامتر متنی String را به عنوان ورودی دریافت می کند. البته تابع های سازنده در C# می توانند overload نیز شوند. یعنی این که ما چندین تابع سازنده هم نام برای یک کلاس داشته باشیم، ولی پارامترهای ورودی آن ها با هم متفاوت باشد. کلاس زیر یک کد عمل را نشان می دهد :
public Car()
{
}
public Car(string color)
{
this.color = color;
}
یک تابع سازنده، می تواند تابع سازنده دیگر را فراخوانی کند که به صورت های مختلف ممکن است کد زیر یک مثال در این زمینه ارائه داده است :
public Car()
{
Console.WriteLine("Constructor with no parameters called!");
}
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
اگر متد مثال فوق را اجرا کنید، خواهید دید که تابع سازنده ای که هیچ پارامتری را به عنوان ورودی ندارد، ابتدا اجرا می شود. از این حالت برای مقداردهی اشیا (objects) یک کلاس با یک تابع سازنده پیش فرض استفاده می شود. اگر بخواهید که تابع سازنده دار ای پارامتر فراخوانی شود، می توانید به صورت کد زیر عمل کنید :
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
public Car(string param1, string param2) : this(param1)
{
}
اگر شما تابع سازنده ای که دارای 2 پارامتر است را فراخوانی کنید، پارامتر اول برای فراخوانی تابع سازنده ای که دارای 1 پارامتر است، استفاده می شود.
آموزش کار با تابع تخریب کننده یا Destructor در C# :
تابع تخریب کننده یا Destructor در زبان C#، متدی است که در هنگام از بین رفتن یک شی از کلاس، اجرا می شود. زبان C#، یک زبان پاک کننده خودکار سیستم یا garbage collector است. به این معنی که اشیایی که دیگر در برنامه نیاز ندارید را جهت خالی کردن حافظه و آزاد نمودن سیستم، پاک می کند. از طرف دیگر در برخی موارد شاید نیاز داشته باشید تا یک Clean up در سیستم انجام دهید، اینجاست که تابع های تخریب کننده Destructor به کار می آیند. تابع های تخریب کننده چندان شبیه سایر متدها در زبان C# نیستند. در کد عملی زیر یک مثال از تابع تخریب کننده نشان داده شده است :
~Car()
{
Console.WriteLine("Out..");
}
به محض این که شی ایجاد شده از کلاس، توسط تمیز کننده خودکار garbage collector جمع آوری شده، متد فوق فراخوانی می شود.
آموزش برنامه نویسیآموزش سی شارپ,آموزش c,آموزش C,آموزش ,C,آموزش csharp,فیلم آموزش سی شارپ,آموزش تصویری سی شارپ,آموزش سی پلاس پلاس,...نویسنده : پیمان کلانتری بازدید : 274 تاريخ : يکشنبه 30 آذر 1399 ساعت: 23:45
به بخش جدید آموزش سی شارپ خوش آمدید.
در این درس قصد داریم تا شما را با مفهوم کلاس ( class ) در C# و کاربرد آن ها آشنا کنیم. همچنین به بیان نحوه تعریف کلاس ها در برنامه و تعیین خواص و متدها برای آن ها خواهیم پرداخت. اول از همه با مفهوم کلاس Class در C# شروع می کنیم. یک کلاس، مجموعه ای از خاصیت ها، متغیرها و متدهای مرتبط با هم است. یک کلاس خصوصیات ذکر شده را توصیف و پیاده سازی کرده و برای استفاده از آن در کد برنامه، بایستی یک نسخه از آن را (که به آن شی یا object می گویند) بسازید. بر روی شی یا object ایجاد شده، می توانید متغیرها و متدهای کلاس را به کار ببرید. هر تعداد که نیاز داشته باشید می توانید شی یا object از روی کلاس ساخته و در نقاط مختلف کد برنامه استفاده کنید. مبحث شی گرایی یا object oriented یک مقوله بسیار گسترده است که در این درس، درس های دیگر این بخش به مهم ترین جزئیات آن خواهیم پرداخت.
در این بخش و در مثال Hello World مشاهده می کنیم که از یک کلاس در کد برنامه استفاده شده است و در C# تقریبا همه چیز بر مبنای کلاس ها ایجاد می شوند. در کد این درس قصد داریم تا کلاس خود را گسترش داده و با انواع امکانات آن آشنا شویم :
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Car car;
car = new Car("Red");
Console.WriteLine(car.Describe());
car = new Car("Green");
Console.WriteLine(car.Describe());
Console.ReadLine();
}
}
class Car
{
private string color;
public Car(string color)
{
this.color = color;
}
public string Describe()
{
retu "This car is " + Color;
}
public string Color
{
get { retu color; }
set { color = value; }
}
}
}
آموزش سی شارپ : همانطور که مشاهده می کنید، در کد فوق یک کلاس جدید به نام Car ایجاد کرده ایم. برای سهولت کار، این کلاس جدید را به همراه کلاس Program در فایل اصلی برنامه قرار داده ایم، اما روش رایج این است که هر کلاس درون فایلی جداگانه هم نام خود کلاس ایجاد شود. کلاس Car دارای یک متغیر (ویژگی) به نام Color است که برای تعیین رنگ خودرو به کار می رود. ویژگی Color به صورت خصوصی یا private تعیین شده که به این معناست که توابع و کلاس های خارج از تابع Car امکان دسترسی مستقیم به این خاصیت را ندارند. فقط توابع و متدهای داخل کلاس Car می توانند به خاصیت Color دسترسی مستقیم داشته باشند.
نکته :
اگر تابع یا کلاسی خارج از کلاس Car بخواهد به خاصیت خصوصی یا private به نام Color دسترسی داشته باشد، بایستی از یک Property برای این منظور استفاده کند. یک Property به نام Color در انتهای کد کلاس Car تعریف شده که وظیفه خواندن و نوشتن این خاصیت را بر عهده داشته و به سایر کلاس ها و توابع برنامه اجازه دسترسی به آن را می دهد.
همچنین کلاس Car دارای یک تابع سازنده یا Constructor می باشد. تابع سازنده، متدی است که وظیفه ساخت یک نمونه شی از کلاس مربوطه و برگردندن آن را به عهده داشته و به محض ساخته شدن یک نمونه شیء از کلاس اجرا می شود. تابع سازنده کلاس Car دارای یک پارامتر بوده که برای مقداردهی اولیه شی Car با خاصیت Color بزرگ قرمز (Red) به کار می رود. بنابراین هر شی از کلاس Car که ساخته شود، رنگ قرمز را به صورت پیش فرض برای خاصیت Color خود خواهد داشت. برای نشان دادن درستی این مسئله نیز تابع Describe طراحی شده که نام هر شی یا object ساخته شده با مقدار رنگ آن را در خروجی نشان می دهد.
آموزش ویژگی های کلاس (C# Properties)
ویژگی (Property) در C# به شما امکان کنترل روش دسترسی و تغییر متغیرهای یک کلاس را می دهد. استفاده از ویژگی در C#، راه توصیه شده و درست جهت دسترسی به متغیرهای یک کلاس، به وسیله متدها یا توابع خارج از کلاس جاری، در زبان برنامه نویسی شی گرا object oriented می باشد. به عبارت دیگر، وقتی که یک متد یا کلاس دیگری در برنامه، بخواهد به متغیر یک کلاس دسترسی داشته باشد، بهتر است به جای این که مستقیما متغیر را استفاده کند، از طریق یک ویژگی یا Property در کلاس خود متغیر، به آن دسترسی داشته باشد. در مثال آموزشی درس قبل (کار با کلاس ها) برای اولین بار روش استفاده از یک ویژگی یا Property را نشان دادیم. یک ویژگی یا Property همانند ترکیبی از یک متغیر Variable و یک متد method است. ویژگی نمی تواند پارامتری را دریافت کند، اما به وسیله آن می توانید قبل از ارسال و دریافت متغیر، مقدار آن را تغییر دهید. هر ویژگی یا Property از دو قسمت اصلی get و set تشکیل شده که همانند کد مثال زیر درون مجموعه Property تعریف می شوند :
private string color;
public string Color
{
get { retu color; }
set { color = value; }
}
متد get مقدار متغیر را خوانده و آن را به برنامه بر می گرداند، از طرف دیگر متد set هم مقدار مورد نظر را به متغیر نسبت می دهد. مثال اول، ساده ترین حالت تعریف Property در C# است، اما می توانید آن را گسترش نیز بدهید.
نکته مهم در آموزش سی شارپ:
مسئله مهم در هنگام تعریف یک ویژگی یا Property این است که تعریف یکی از متدهای set یا get نیز کفایت می کند و در صورت تعریف یکی، تعریف متد دیگر اختیاری است. این مسئله، امکان تعریف ویژگی های فقط خواندنی read-only و یا فقط نوشتنی write-only را می دهد.
در کد زیر یک مثال کامل تر از نحوه تعریف ویژگی ها در C# را نشان داده ایم :
public string Color
{
get
{
retu color.ToUpper();
}
set
{
if(value == "Red")
color = value;
else
Console.WriteLine("This car can only be red!");
}
}
در کد مثال فوق، ویژگی را کمی گسترش دادیم. در کد جدید، متغیر Color در هنگام retu، به دلیل استفاده از متد ToUpper() به صورت حروف بزرگ، برگردانده می شود. از طرف دیگر، با استفاده از دستور شرطی if، فقط مقدار رنگ “red” برای متغیر Color پذیرفته می شود.
آموزش سی شارپ ادامه دارد
آموزش برنامه نویسیآموزش سی شارپ,آموزش c,آموزش C,آموزش ,C,آموزش csharp,فیلم آموزش سی شارپ,آموزش تصویری سی شارپ,آموزش سی پلاس پلاس,...نویسنده : پیمان کلانتری بازدید : 226 تاريخ : سه شنبه 25 آذر 1399 ساعت: 18:24
در این مقاله از سری مقاله های آموزش SQL Server به آموزش کپی کردن اطلاعات از یک جدول به جدول دیگر می پردازیم، برای این کار می توانید از دو دستور Select Into و Insert Into Select استفاده کنید. در ادامه به شرح هر یک از این دستورات و تفاوت آنها با یکدیگر می پردازیم :
در SQL می توانید اطلاعات را از یک جدول به داخل جدول دیگری کپی نمایید. دستور SELECT INTO داده ها را از یک جدول بر می دارد و در جدولی دیگر وارد می کند.
می توانیم تمام ستون ها را به یک جدول جدید وارد کنیم :
SELECT *
INTO newtable [IN extealdb]
FROM table1;
یا می توانیم تنها ستون مورد نظر خود را به جدول جدیدی وارد کنیم :
SELECT column_name(s)
INTO newtable [IN extealdb]
FROM table1;
جدول جدید با نام ستون ها و تنظیماتی که در عبارت SELECT برای آن تعریف شده است ایجاد می گردد. برای اضافه کردن نام های جدید می توانید از عبارت AS استفاده نمایید.
دستور زیر از جدول Customers یک بکاپ تهیه می کند :
SELECT *
INTO CustomersBackup2013
FROM Customers;
همچنین می توانیم از عبارت IN برای کپی کردن جدول به پایگاه داده دیگر استفاده کنیم :
SELECT *
INTO CustomersBackup2013 IN 'Backup.mdb'
FROM Customers;
دستور زیر تنها مشتریانی که نام کشورشان آلمان است را در جدول جدید کپی می کند :
SELECT *
INTO CustomersBackup2013
FROM Customers
WHERE Country='Germany';
SELECT *
INTO CustomersBackup2013
FROM Customers
WHERE Country='Germany';
دستور زیر داده را از بیشتر از یک جدول به جدول جدید وارد می کند :
SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2013
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID;
نکته :
از عبارت SELECT INTO میتوان برای ایجاد یک جدول خالی جدید با بهره گیری از طرح های ظاهری جدول های دیگر استفاده کرد. برای اینکار تنها کافی است تا دستور WHERE را به عبارت خود اضافه کنیم، این کار سبب می شود تا query ارسال شده بدون پاسخ بازگردد :
SELECT *
INTO newtable
FROM table1
WHERE 1=0;
در SQL می توان اطلاعات را از یک جدول به جدول دیگر کپی کرد. عبارت INSERT INTO SELECT داده ها را از یک جدول کپی کرده و در جدول دیگری وارد می نماید. سطر های جدول مقصد در این پروسه بدون هیچگونه تغییر باقی می ماند.
با استفاده ازعبارت زیر می توانیم تمام ستون ها را از یک جدول به جدول دیگری کپی کنیم :
INSERT INTO table2
SELECT * FROM table1;
یا می توانیم با استفاده از عبارت زیر تنها ستون های مورد نظر خود را در جدول دیگری کپی کنیم :
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
آنچه در زیر می بینید گزیده ای است از جدول "Suppliers" :
عبارت زیر تنها تعدادی کمی از ستون ها را از جدول Suppliers به جدول Customers کپی می کند:
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
عبارت زیر تنها عرضه کنندگان آلمانی را از جدول Suppliers به جدول Customers کپی می کند :
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';
با دیگر مقالات ما در زمینه آموزش SQL Server همراه باشید..
آموزش برنامه نویسیآموزش sql server,آموزش دستورات sql server,دوره آموزش sql server,آموزش کپی کردن اطلاعات در sql server,آموزش select into در sql server,...نویسنده : پیمان کلانتری بازدید : 242 تاريخ : يکشنبه 23 آذر 1399 ساعت: 22:00
در این مقاله از سری مقاله های آموزش SQL Server به آموزش انواع join می پردازیم :
عملگر UNION نتیجه دو یا چند دستور SELECT را با یکدیگر ترکیب می کند.
عملگر UNION برای ترکیب نتایج دو یا چند دستور SELECT استفاده می شود.
توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید Data Type یکسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند.
فرم عملگر UNION
SELECT column_name(s) FROM table1
نکته:
عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از کلید واژه ALL به همراه UNION استفاده کنید.
فرم عملگر UNION ALL
SELECT column_name(s) FROM table1
نکته: نام ستون ها در جدول نتایج معمولا برابر نام ستونها در دستور SELECT اول در عملگر UNION می باشد.
نحوه استفاده از کلید واژه UNION در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
آنچه در زیر می بینید گزیده ای است از جدول "Suppliers":
مثال استفاده از کلید واژه UNION
عبارت SQL زیر نام تمام شهر های مختلف را (تنها از بین مقادیر مشخص) از ستون "City" و از میان جداول Customers و Suppliers انتخاب می کند:
SELECT City FROM Customers
SELECT City FROM Suppliers
ORDER BY City;
نکته:
عملگر UNION نمی تواند برای لیست کردن تمام شهر های دو جدول مورد استفاده قرار گیرد. اگر تعدادی از مشتریان و عرضه کنندگانAnchor دارای نام شهر یکسانی باشند، نام آن شهر تنها یکبار در لیست قرار
می گیرد. UNION تنها مقادیر غیر تکراری را انتخاب می کند. برای انتخاب مقادیر تکراری از UNION ALL استفاده کنید.
مثال استفاده از عملگر UNION ALL
آموزش SQL Server : عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر ها از جداول Customers و Suppliers استفاده می کند:
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
مثال استفاده از عملگر UNION ALL همراه با دستور WHERE
عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر های آلمانAnchor از جداول Customers و Suppliers استفاده می کند:
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
آموزش SQL Server ادامه دارد
آموزش برنامه نویسیآموزش Sql server,دوره آموزش sql,دوره آموزش sql server,آموزش sql,آموزش sql server 2019,آموزش نصب sql,...نویسنده : پیمان کلانتری بازدید : 241 تاريخ : چهارشنبه 19 آذر 1399 ساعت: 20:55
در این مقاله از سری مقاله های آموزش SQL Server به آموزش انواع join می پردازیم :
کلید واژه Join برای ترکیب سطر های دو یا چند جدول به کار می رود. ایج ترین نوع Join –Inner join (پیوند داخلی) است که تمام سطر هایی از جدول های گوناگون را که از شرط Join پیروی می کنند فرا می خواند. بیایید نگاهی به گزیده ای از جدول "Orders"( سفارشات) در پایین بیاندازیم.
حالا نگاهی به گزیده ای از جدول "Customers" در زیر بیاندازید:
دقت داشته باشید که ستون "Customers ID" در جدول "Orders" به ستون "Customers ID" در جدول "Customers" اشاره دارد. رابطه بین دو جدول بالا ستون "Customer ID" می باشد. بنابراین اگر ما عبارت SQL زیر را که شامل (INNER JOIN) می باشد اجرا کنیم.
SELECT Orders.OrderID, Customers.CompanyName
, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
قبل از اینکه مثال ها را ادامه دهیم انواع پیوندهایی که می توان از آنها استفاده کرد را به همراه تفاوت های آن ها بیان می کنیم.
کلید واژه INNER JOIN سطرهایی از هر دو جدول را انتخاب می کند که حداقل یک داده متناظر در ستون های مرتبط با هم داشته باشد.
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
یا:
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
نکته :
تفاوتی بین JOIN و INNER JOIN وجود ندارد یا به عبارت دیگر INNER JOIN همان JOIN است.
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
جدول زیر نیز گزیده ای از جدول "Orders" می باشد:
عبارت SQL زیر تمام مشتریان را همراه با شماره سفارشاتشان لیست می کند:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
نکته :
عبارت کلیدی INNER JOIN سطرهایی که حداقل یک تناظر در دو جدول داشته باشند را برمی گرداند. اگر سطری در جدول Customers وجود دارد که تناظری با جدول Orders ندارد، آن سطر لیست نمی شود.
کلید واژه LEFT JOIN تمام سطر های جدول سمت چپ (table1) و آندسته از سطر های جدول سمت راست (table2) را که با جدول سمت چپ متناظر است فرا می خواند. اگر در جدول سمت راست سطر متناظری وجود نداشته باشد نتیجه در سمت راست صفرAnchor خواهد بود.
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
یا :
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;
نکته :
در برخی از پایگاه های داده LEFT JOIN به نام LEFT OUTER JOIN نیز نامیده می شود.
نحوه استفاده از کلید واژه LEFT JOIN در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
آنچه در زیر می بینید گزیده ای است از جدول "Orders":
مثال استفاده از کلید واژه LEFT JOIN
عبارت SQL زیر تمام مشتریان و سفارشاتشان را لیست می کند:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
نکته :
کلید واژه LEFT JOIN تمام سطرهای جدول سمت چپ (Customers) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت راست (Orders) وجود نداشته باشد.
کلید واژه RIGHT JOIN تمام سطر های جدول سمت راست (table2) و آندسته از سطر های جدول سمت چپ (table1) را که با جدول سمت راست متناظر است فرا می خواند. اگر در جدول سمت چپ سطر متناظری وجود نداشته باشد نتیجه در سمت چپ صفرAnchor خواهد بود.
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;
یا :
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
نکته :
در برخی از پایگاه های داده RIGHT JOIN به نام RIGHT OUTER JOIN نیز نامیده می شود.
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Orders" انتخاب شده است:
آنچه در زیر می بینید گزیده ای است از جدول "EmployeesAnchor":
مثال استفاده از کلید واژه RIGHT JOIN
عبارت SQL زیر لیست تمام کارمندان و سفارشات آنها را فرا می خواند:
SELECT Orders.OrderID, Employees.FirstName
FROM Orders
RIGHT JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID
ORDER BY Orders.OrderID;
نکته :
کلید واژه RIGHT JOIN تمام سطرهای جدول سمت راست (Employees) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت چپ (Orders) وجود نداشته باشد.
کلید واژه FULL OUTER JOIN تمام ردیف های جدول سمت چپ (table1) و سمت راست (table2) را فرا می خواند. کلید واژه FULL OUTER JOIN نتایج بدست آمده از پیوند های چپ و راستAnchor را با یکدیگر ترکیب می کند.
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
مثال استفاده از کلید واژه FULL OUTER JOIN
عبارت SQL زیر تمام مشتریان و سفارشاتشان را انتخاب می کند:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
نتیجه بدست آمده از عبارت بالاAnchor به شکل زیر می باشد:
نکته :
کلید واژه FULL OUTER JOIN تمام سطرهای جدول سمت چپ (Customers) و تمام سطرهای موجود در جدول سمت راست (Orders) را بر می گرداند. اگر سطری در جدول Customers وجود دارد که تناظری در جدول Orders ندارد یا اگر سطری در جدول Orders وجود دارد که تناظری در جدول Customers ندارد با این وجود این سطرها نیز در جدول نتیجه نمایش داده خواهند شد.
با دیگر مقاله های ما در زمینه آموزش SQL Server همراه باشید..
آموزش برنامه نویسیآموزش sql server, دوره آموزش sql server, آموزش انواع join, آموزش join, join در sql,...نویسنده : پیمان کلانتری بازدید : 246 تاريخ : چهارشنبه 12 آذر 1399 ساعت: 20:30
در این مقاله از مجموعه مقاله های آموزش SQL Server به آموزش دستورات in و between در SQL Server می پردازیم..
عملگر IN به شما اين امکان را مي دهد که چندين ارزش )مقدار) را در عبارت WHERE مشخص کنيد. فرم عملگر IN به صورت زیر است :
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
عبارت SQL زیر مشتریانی را انتخاب می کند که نام شهر هایشان "Paris" با "London" باشد:
SELECT * FROM Customers
WHERE City IN ('Paris','London');
عملگر BETWEEN برای انتخاب مقادیر بین یک محدوده استفاده می شود. عملگر BETWEEN برای انتخاب مقادیر بین یک محدوده استفاده می شود. مقدارها می توانند اعداد، متن و یا تاریخ باشند.
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "ProductsAnchor" انتخاب شده است:
عبارت SQL زیر تمام محصولاتی را که قیمت آنها بین 10 و 20 باشد را انتخاب می کند:
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
برای نمایش محصولاتی که خارج از محدوده مثال قبل باشد از NOT BETWEEN استفاده می کنیم:
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
عبارت SQL زیر محصولاتی را که در محدوده قیمتی 10 و 20 بوده را انتخاب می کند ولی محصولاتی که "Category ID" آنها 1، 2 یا 3 باشد را نشان نمی دهد:
SELECT * FROM Products
WHERE (Price BETWEEN 10 AND 20)
AND NOT CategoryID IN (1,2,3);
عبارت SQL زیر محصولاتی را که نام آنها با هر کدام از حروف مابین "C" و "M" آغاز شده باشد را انتخاب می کند:
SELECT * FROM Products
WHERE ProductName BETWEEN 'C' AND 'M';
عبارت SQL زیر محصولاتی را که نام آنها با حرفی غیر از حروف مابین "C" و "M" آغاز شده باشد را انتخاب می کند:
SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'C' AND 'M';
جدول زیر گزیده ای است از جدول "Order":
آموزش دستور between در SQL Server : مثال استفاده از عملگر BETWEEN همراه Date Value
مقدار SQL زیر تمام سفارشاتی را که در بین تاریخ های "04-July-1996" و "09-July-1996" انجام شده است انتخاب می کند:
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;
توجه داشته باشید که عملگر BETWEEN در پایگاه های داده مختلف نتایج گوناگونی خواهد داشت. در بعضی از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار را بجز مقادیر ابتدا و انتهای محدوده را انتخاب می کند. در بعضی دیگر از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقادیر ابتدا و انتهای محدوده را انتخاب می کند. در بعضی دیگر از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقدار ابتدایی و بدون مقدار انتهایی محدوده را انتخاب می کند.
بنابراین: پایگاه داده خود را کنترل کنید که چگونه با عملگر BETWEEN رفتار می کند!
با دیگر مقالات ما در زمینه آموزش SQL Server همراه باشید..
آموزش برنامه نویسیآموزش sql server, فیلم آموزش sql server, دوره آموزش sql server, آموزش دستورات sql server, آموزش دستور between در SQL Server, آموزش دستور in در SQL Server,...نویسنده : پیمان کلانتری بازدید : 254 تاريخ : سه شنبه 4 آذر 1399 ساعت: 21:31
آموزش پایتون همراه شما هستیم، در این مقاله میخواهیم سینتکس پایه پایتون را مورد بررسی قرار دهیم..
امروز با مقاله دیگری از سری مقاله هایساختار نگارشی پایه پایتون (basic syntax)
زبان پایتون شباهت های زیادی به زبان های Perl، C و Java دارد. با این حال، تفاوت های اساسی هم بین این زبان ها وجود دارد.
اولین برنامه ی پایتون
برنامه نویسی خود را از روش های زیر انجام می دهیم.
برنامه نویسی با فراخوانی مفسر
آموزش پایتون : اگر مفسر را بدون ارسال یک فایل اسکریپت به آن به عنوان پارامتر، صدا بزنید با prompt (کادری حاوی دستورات) زیر مواجه خواهید شد:
$ python
Python 2.4.3 (#1, Nov 11 2010, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
دستور زیر را وارد کنید و کلید Enter را فشار دهید:
print "Hello, Python!"
در صورت استفاده از نسخه ی جدید پایتون، می بایست همراه با دستور Print از () استفاده کنید، بدین صورت: print ("Hello, Python!");. در ویرایش این زبان، نتیجه ی زیر حاصل می شود:
"Hello, Python!"
شناسه ها در پایتون
شناسه یا identifier یک اسم است که به منظور شناسایی متغیر، تابع، کلاس، ماژول یا دیگر اشیا به آن ها تخصیص داده می شود. شناسه با یک حرف از A تا Z (یا a تا z) یا زیرخط (_) آغاز شده و به دنبال آن یک یا چند صفر، حرف، زیرخط و عدد قرار می گیرد. استفاده از علائم نگارشی همچون @، $ و % در شناسه مجاز نمی باشد. پایتون یک زبان حساس به کوچک و بزرگی حروف است. از این رو، دو واژه ی Manpower و manpower دو شناسه ی کاملا متفاوت از یکدیگر هستند. قوانین نام گذاری توابع، متغیرها و اشیا در زیر فهرست شده:
اسم کلاس ها با حرف بزرگ آغاز می شود. دیگر شناسه ها با حرف کوچک شروع می شود.
آغاز کردن یک شناسه با زیرخط (_)، بیانگر این است که آن شناسه private می باشد.
آغاز کردن یک شناسه با دو زیرخط نشانگر strongly private بودن آن شناسه است.
اگر شناسه ای با دو زیرخط پشت سرهم پایان یابد، در آن صورت شناسه ی مورد نظر اسم خاص language defined می باشد.
کلمات رزرو شده
لیست زیر کلمات رزرو شده ی زبان پایتون را نمایش می دهد. این کلمات را نمی توان به عنوان اسم متغیر، ثابت (constant) یا هر چیز دیگر استفاده کرد. لازم به ذکر است که تمامی کلیدواژه های پایتون تماما با حروف کوچک نوشته می شوند.
خطوط فاصله و تورفتگی
آموزش پایتون از {} برای مشخص کردن قطعه کدهای تعریف کلاس، تابع یا جریان کنترل داده (flow control در ارتباطات دادهای، کنترل جریان یک فرایند مدیریت نرخ انتقال بین دو گره برای جلوگیری از ارسال از طرف فرستنده سریع به دریافت کننده کند است. کنترل جریان مکانیزمی را برای دریافت کننده جهت کنترل سرعت انتقال فراهم میکند.) استفاده نمی کند. قطعه کدها با استفاده از تورفتگی مشخص می شوند. از این رو در استفاده از آن بایستی بسیار دقیق بود. مقدار فضای خالی در تورفتگی ها متغیر است، اما تمامی دستورات درون قطعه کد بایستی به یک اندازه توگذاشته شوند. مثال:
if True:
print "True"
else:
print "False"
اما قطعه کد زیر خطا می دهد:
if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"
بنابراین، در زبان پایتون تمامی خطاهای متوالی که به یک اندازه توگذاشته شده اند، در کل یک قطعه کد را تشکیل می دهند. اگر با دقت به مثال زیر دقت کنید، می بینید که چندین قطعه کد در آن وجود دارد:
#!/usr/bin/python
import sys
try:
# open file stream
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# close the file
file.close
break
file.write(file_text)
file.write("n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
print "Next time please enter something"
sys.exit()
try:
file = open(file_name, "r")
except IOError:
print "There was an error reading file"
sys.exit()
file_text = file.read()
file.close()
print file_text
دستورهای چندخطی
آموزش پایتون : دستورات پایتون معمولا به خط جدید ختم می شوند (یک خط تمام شده و خط دیگری شروع می شود). کاراکتر () در انتهای خط نشانگر ادامه ی دستور مورد نظر در خط دیگر است. مثال:
total = item_one +
item_two +
item_three
دستوراتی که داخل {}، [] یا () قرار می گیرند نیازی به کاراکتر () برای نشان دادن اینکه ادامه دستور در خط بعدی قرار گرفته، ندارد.
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
علامت نقل قول یا کوتیشن در پایتون
می توان در پایتون از تک کوتیشن (')، دابل کوتیشن (") و سه کوتیشن با هم (''' یا " " ") استفاده کرد. مقداری که درون این علامت ها قرار می گیرد، یک رشته ی نوشتاری (string literal) را تشکیل می دهد. بایستی دقت داشت که یک رشته با یک نوع کوتیشن آغاز شده و با همان نوع نیز پایان می یابد. از ''' یا " " " برای محصور کردن یک رشته که در چندین خط ادامه دارد استفاده می شود. تمامی نمونه های زیر مجاز و صحیح هستند:
word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""
(توضیحات) Comment در پایتون
علامت # اگر داخل کوتیشن محصور نباشد، نشانگر شروع comment خواهد بود. تمام کاراکترهایی که پس از # قرار می گیرند تا پایان آن خط بخشی از توضیح محسوب می شوند و مفسر پایتون آن ها را نادیده گرفته و اجرا نمی کند.
#!/usr/bin/python
# First comment
print "Hello, Python!" # second comment
خروجی کد بالا:
Hello, Python!
می توانید یک comment را درست بعد از یک دستور یا عبارت شروع کرد، بدین نحو:
name = "Madisetti" # This is again comment
می توانید چند خط را به صورت comment دربیاورید، بدین شکل:
# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.
استفاده از خطوط تهی
خطی که چیزی به جز فضای خالی در آن بکار نرفته و احیانا دارای یک comment می باشد، درواقع یک خط تهی (blank space) محسوب می شود و مفسر پایتون آن را کاملا نادیده می گیرد. در یک session که برنامه نویس مستقیما با مفسر تعامل دارد، می بایست بین این دستور و دستور بعدی یک خط خالی فاصله بیاندازید.
منتظر کاربر بودن
خط زیر یک پنجره ی prompt حاوی دستور “Press the enter key to exit” نمایش می دهد و منتظر کاربر می ماند تا اقدامات لازم را انجام دهد:
#!/usr/bin/python
raw_input("nnPress the enter key to exit.")
در اینجا، دستور "nn" دو خط جدید ایجاد کرده، سپس خود خط را نمایش می دهد. پس از اینکه کاربر کلید Enter را فشار می دهد، برنامه پایان می یابد. با این روش می توان پنجره ی console را تا زمانی که کاربر کارش با برنامه تمام نشده، باز نگه داشت.
چندین دستور در یک خط
آموزش پایتون : با استفاده از نقطه ویرگول (;) می توان چندین دستور را در یک خط واحد جای داد، لازم به ذکر است هیچ یک از دستورات مزبور یک قطعه کد مجزا را تشکیل نمی دهد. در زیر یک تکه کدی را مشاهده می کنید که از نقطه ویرگول در آن استفاده شده است:
import sys; x = 'foo'; sys.stdout.write(x + 'n')
مجموعه دستورات در پایتون
یک گروه از دستورات منفرد، که در مجموع یک قطعه کد مجزا را تشکیل می دهند در زبان پایتون به اصطلاح suite اطلاق می گردند. دستورات مرکب نظیر if، while، def و class نیازمند یک خط سرآیند (header line) و یک suiteهستند. خطوط سرآیند (header) با یک دستور (یک کلیدواژه) آغاز می شود و با یک دونقطه (:) به پایان می رسد، همچنین به دنبال آن یک یا چندین خط قرار می گیرد که suite (مجموعه دستور) را تشکیل می دهد. نمونه:
if expression :
suite
elif expression :
suite
else :
suite
آرگومان های خط فرمان (command-line arguments)
بسیاری از دستورات را می توان اجرا کرد تا اطلاعات ابتدایی دررابطه با نحوه ی اجرای برنامه در اختیار شما قرار دهد. پایتون با فراهم نمودن دستور –h، این امکان را به شما می دهد:
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[ etc. ]
آموزش پایتون ادامه دارد
آموزش برنامه نویسیآموزش پایتون, دوره آموزش پایتون, آموزش python, دوره آموزش python, آموزش نصب پایتون,...نویسنده : پیمان کلانتری بازدید : 221 تاريخ : سه شنبه 4 آذر 1399 ساعت: 19:13
به بخش جدید آموزش سي شارپ خوش آمدید.
آرایه ها Arrays مجموعه ای از آیتم ها مثل متن String می باشند. شما می توانید از آرایه ها برای قرار دادن چندین متغیر همسان در یک گروه و سپس انجام اعمال خاصی بر روی آن ها مثل مرتب سازی یا sorting استفاده کنید. آرایه ها در C# تقریبا شبیه متغیرها تعریف می شوند با این فرق که یک [ ] در مقابل نوع داده ای آرایه قرار می گیرد. ساختار کلی تعریف یک آرایه در C# به صورت زیر است :
string[] names;
برای استفاده از یک آرایه نیاز دارید آن را تعریف اولیه و مقداردهی کنید. به صورت زیر :
string[] names = new string[2];
در کد فوق، عدد 2 سایز آرایه را تعیین می کند. سایز آرایه تعداد اعضایی که می توانید در آرایه قرار دهید را مشخص می سازد. قرار دادن آیتم ها در یک Arrays کار ساده ای است. به صورت زیر :
names[0] = "John Doe";
اما چرا در تعریف اولین عضو آرایه از عدد 0 استفاده کردیم. به دلیل این که در C# همانند سایر زبان های برنامه نویسی، شمارش واحدها به جای 1 از 0 شروع می شود. بنابراین اولین عضو آرایه با 0 اندیس گذاری شده، دومی با 1 و به این ترتیب. شما بایستی به تعداد اعضای یک آرایه دقت کنید، زیرا تعریف عضو بیشتر از تعداد تعیین شده برای آرایه، برنامه را دچار خطا می کند. دقت کنید وقتی یک آرایه با 2 عضو تعیین می شود، اعضای آن دارای اندیس های 0 و 1 هستند و عضوی با 2 اندیس وجود ندارد. این یک اشتباه رایج در هنگام استفاده از آرایه هاست. در درس های قبل تر، با ساختارهای تکرار (حلقه) در C# آشنا شدید، این ساختارها برای کار با آرایه ها بسیار مناسب هستند. رایج ترین راه برای استخراج اطلاعات یک آرایه Arrays استفاده از حلقه ها یا loops می باشد. در هر بار تکرار حلقه، یک عضو آرایه استخراج شده و می توان عملیات مورد نظر خود را بر روی آن انجام داد. در مثال عملی زیر، نحوه خواندن و کار با یک آرایه را به وسیله حلقه loop نشان داده ایم :
using System;
using System.Collections;
namespace ConsoleApplication1
}
class Program
}
static void Main(string[] args)
}
string[] names = new string[2];
names[0] = "John Doe";
names[1] = "Jane Doe";
foreach(string s in names)
Console.WriteLine(s);
Console.ReadLine();
{
{
{
در مثال فوق، از حلقه foreach استفاده کردیم که ساده ترین نوع حلقه برای کار با آرایه هاست. اما می توان از سایر انواع حلقه ها در C# نیز استفدده نمود، مثل حلقه for که به راحتی به وسیله آن می توان اعضای یک آرایه را شمرد و به تعداد اعضا پیام در خروجی چاپ کرد :
for(int i = 0; i < names.Length; i++)
Console.WriteLine("Item number " + i + ": " + names[i]);
در آموزش سي شارپ کارکرد کد فوق بسیار ساده است. ما از اندازه طول آرایه (Arrays Length) برای تعیین این که حلقه بایستی چند بار تکرار شود، استفاده کرده ایم. همچنین از شمارنده Counter(i) برای فهمیدن این که هر لحظه در کجای پردازش آرایه بوده و برای بیرون کشیدن هریک از اعضای آن استفاده نموده ایم. همانطور که در هنگام تعریف و مقداردهی آرایه از یک عدد به نام اندیس یا indexer استفاده کردیم، از همان عدد می توان برای خواندن و بیرون کشیدن اعضای آرایه استفاده نمود. در بخش قبل گفتیم که می توان اعضای یک آرایه را مرتب یا sort کرد. این کار بسیار راحت است. کلاس Array Class شامل چندین متد (method) مختلف است که از آن ها می توانید برای کار با آرایه ها استفاده کنید. در مثال زیر اعداد به جای string یا متن استفاده کرده ایم تا منظور خاصی را نشان دهیم، وگرنه به همین سادگی می توان اعضای یک آرایه را از نوع string هم تعریف کرد. روش بسیار ساده تر دیگری نیز برای پر کردن و مقداردهی اعضای یک آرایه وجود دارد، به خصوص زمانی که اعضای آرایه شما مشخص و مرتب هستند. به صورت زیر :
int[] numbers = { 4, 3, 8, 0, 5 };
فقط با استفاده از یک خط کد، آرایه ای با 5 عضو را ایجاد نموده و پنج عدد یا integer را به عنوان اعضای آن مقداردهی کردیم. با پر کردن اعضای یک آرایه به روش فوق، شما یک مزیت دیگر در کد خود خواهید داشت. با روش فوق، کامپایلر تعداد اعضای تعریف شده برای آرایه را با تعداد آیتم های شما چک کرده و اگر بیشتر از تعداد اعضا، آیتم ارائه دهید، خطا رخ می دهد. درواقع کد فوق را به صورت زیر می توان خلاصه تر نوشت، ولی در این حالت چک کردن خودکار کامپایلر را از دست می دهیم :
int[] numbers = { 4, 3, 8, 0, 5 };
در آموزش سي شارپ اما بیایید نحوه مرتب کردن یا sort یک آرایه را باهم بررسی کنیم. مثال زیر را به دقت مطالعه کنید :
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] numbers = { 4, 3, 8, 0, 5 };
Array.Sort(numbers);
foreach(int i in numbers)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
تنها چیز جدید در کد مثال فوق، دستور Array.Sort است. این متد می تواند پارامترهای مختلفی را به عنوان ورودی دریافت کرده و در هر کدام یک نوع آرایه را مرتب خواهد کرد. مثلا نزولی، صعودی و یا ... . کلاس Array Class دارای متدهای مختلف دیگری برای کار با آرایه ها مثل متد Reverse() است که به وسیله آن می توان ترتیب اعضای یک آرایه را معکوس کرد. برای درک بهتر، به لیست کامل متدهای آرایه ها در C# بروید. آرایه هایی که در مثال های این درس استفاده کردیم، همه تک بعدی هستند، ولی آرایه ها در C# می توانند 2 یا 3 بعدی نیز باشند. به این آرایه ها آرایه های تو در تو یا ماتریس هم می گویند. آرایه های چند بعدی در C# به 2 دسته تقسیم می شوند :
آرایه های مستطیلی یا Rectangular Array.
آرایه های نامنظم یا Jagged Array.
فرق بین دو نوع آرایه فوق در این است که هر بعد آرایه های مستطیلی بایستی یک اندازه باشند، مثلا یک آرایه ها 4×4. اما هر بعد آرایه های Jagged Array می توانند دارای سایزهای مختلفی باشند. بحث در مورد آرایه چند بعدی بسیار گسترده بوده و خارج از حوصله این آموزش می باشد.
آموزش سي شارپ ادامه دارد
آموزش برنامه نویسیآموزش سی شارپ,دوره سی شارپ,آموزش C,آموزش ,C,فیلم آموزش سی شارپ,دوره سی شارپ تحلیل داده,...نویسنده : پیمان کلانتری بازدید : 220 تاريخ : دوشنبه 3 آذر 1399 ساعت: 22:57